package ig.ejb.metrica.da.session;

//import ig.ejb.metrica.da.RelacionaccionessubcuentasDTO;
import ig.ejb.metrica.da.RelacionaccionessubcuentasLocal;
import ig.ejb.metrica.da.util.AccionesflujosDTO;
import ig.ejb.metrica.da.util.IComun;
import java.sql.Timestamp;
import java.util.Collection;
import javax.ejb.*;

/**
 * This is the bean class for the RelacionAccionesSubcuentasSBBean enterprise bean.
 * Created 11/12/2006 06:54:48 PM
 * @author jsanchez
 */
public class RelacionAccionesSubcuentasSBBean implements SessionBean, RelacionAccionesSubcuentasSBLocalBusiness {
    private SessionContext context;
    
    // <editor-fold defaultstate="collapsed" desc="EJB infrastructure methods. Click the + sign on the left to edit the code.">
    // TODO Add code to acquire and use other enterprise resources (DataSource, JMS, enterprise bean, Web services)
    // TODO Add business methods or web service operations
    /**
     * @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
     */
    public void setSessionContext(SessionContext aContext) {
        context = aContext;
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbActivate()
     */
    public void ejbActivate() {
        
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbPassivate()
     */
    public void ejbPassivate() {
        
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbRemove()
     */
    public void ejbRemove() {
        
    }
    // </editor-fold>
    
    /**
     * See section 7.10.3 of the EJB 2.0 specification
     * See section 7.11.3 of the EJB 2.1 specification
     */
    public void ejbCreate() {
        // TODO implement ejbCreate if necessary, acquire resources
        // This method has access to the JNDI context so resource aquisition
        // spanning all methods can be performed here such as home interfaces
        // and data sources.
    }
    
    
    
    // Add business logic below. (Right-click in editor and choose
    // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
    ig.ejb.metrica.da.RelacionaccionessubcuentasLocalHome rv=null;
    private ig.ejb.metrica.da.RelacionaccionessubcuentasLocalHome lookupRelacionaccionessubcuentasBean() {
        try {
            if(rv==null){
                javax.naming.Context c = new javax.naming.InitialContext();
                rv = (ig.ejb.metrica.da.RelacionaccionessubcuentasLocalHome) c.lookup("java:comp/env/ejb/RelacionaccionessubcuentasBean");
            }
            return rv;
        } catch(javax.naming.NamingException ne) {
            java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
            throw new RuntimeException(ne);
        }
    }
    
    public void createNewObject(Object ... obj) throws java.lang.Exception {
        //TODO implement createNewObject
//        if(obj==IComun.NULL || obj.length==0){
//            throw new Exception("No se crearon Las relaciones acciones  subcuebntas Flujos.");
//        }else if(obj[0] instanceof Collection){
//            for (Object elem : (Collection)obj[0]) {
//                this.lookupRelacionaccionessubcuentasBean().create(
//                        ig.util.KeyGenerator.getInstance().getNewKey(),
//                        ((RelacionaccionessubcuentasDTO)elem).getIdformato(),
//                        ((RelacionaccionessubcuentasDTO)elem).getUnidadcaptura(),
//                        ((RelacionaccionessubcuentasDTO)elem).getSubcuenta(),
//                        ((RelacionaccionessubcuentasDTO)elem).getIdaccion()
//                        );
//            }
//        }else if(obj[0] instanceof AccionesflujosDTO){
//            this.lookupRelacionaccionessubcuentasBean().create(
//                    ig.util.KeyGenerator.getInstance().getNewKey(),
//                    ((RelacionaccionessubcuentasDTO)obj[0]).getIdformato(),
//                    ((RelacionaccionessubcuentasDTO)obj[0]).getUnidadcaptura(),
//                    ((RelacionaccionessubcuentasDTO)obj[0]).getSubcuenta(),
//                    ((RelacionaccionessubcuentasDTO)obj[0]).getIdaccion()
//                    );
//        }
    }
    
    public void removeByObject(Object ... obj) throws java.lang.Exception {
//        TODO implement removeByObject
//        if(obj==IComun.NULL || obj.length==0){
//            throw new Exception("No se eliminaron las relaciones acciones subcuetas Flujos.");
//        }else if(obj[0] instanceof String){
//            if(obj[0].equals(ig.ejb.metrica.da.util.IComun.Id)){
//                this.lookupRelacionaccionessubcuentasBean().findByPrimaryKey((Integer) obj[1]).remove();
//            }else if(obj[0].equals(ig.ejb.metrica.da.util.IComun.FechaCorte)){
//                Collection c=this.lookupRelacionaccionessubcuentasBean().findByFechaCorte((Timestamp) obj[1]);
//                for (Object elem : c) {
//                    ((RelacionaccionessubcuentasLocal)elem).remove();
//                }
//            }
//        }else if(obj[0] instanceof Collection){
//            for (Object elem : (Collection)obj[0]) {
//                this.lookupRelacionaccionessubcuentasBean().findByPrimaryKey(((RelacionaccionessubcuentasDTO)elem).getId()).remove();
//            }
//        }
    }
    
    public Object findByObject(Object ... obj) throws java.lang.Exception {
        if(obj==IComun.NULL || obj.length==0 || obj[0].equals(IComun.ALL)){
            return this.lookupRelacionaccionessubcuentasBean().findAll();
        }else if(obj[0].equals(ig.ejb.metrica.da.util.IComun.Id)){
//            return this.lookupAccionesflujosBean().findById((Integer) obj[1]);
        }else if(obj[0].equals(ig.ejb.metrica.da.util.IComun.FechaCorte)){
            return this.lookupRelacionaccionessubcuentasBean().findByFechaCorte((Timestamp) obj[1]);
        }
        return null;
    }
    
    
}
